package org.mics.cyy.backUser.service;

import java.util.List;

import org.mics.core.page.PageQuery;
import org.mics.core.response.PageDataResponse;
import org.mics.cyy.backUser.entity.MenuDO;
import org.mics.cyy.backUser.request.MenuRequest;
import org.mics.cyy.backUser.vo.MenuVO;

/**
 * 菜单
 * @author mics
 * @date 2023-10-9
 * @version  1.0
 */
public interface MenuService {
	
	/**
	 * 增加/修改菜单
	 * @author mics
	 * @date 2023-10-9
	 * @version  1.0
	 * @param menuRequest 菜单信息
	 * @return 菜单id
	 */
	String add(MenuRequest menuRequest);

	/**
	 * 根据id删除菜单
	 * @author mics
	 * @date 2023-10-9
	 * @version  1.0
	 * @param id  菜单id
	 */
	void delete(String id);

	/**
	 * 菜单分页列表
	 * @author mics
	 * @date 2023-10-9
	 * @version  1.0
	 * @param pageQuery 分页查询请求
	 * @return 分页数据列表
	 */
	PageDataResponse<MenuVO> listByPage(PageQuery pageQuery);

	/**
	 * 根据角色id查询菜单
	 * @author mics
	 * @date 2023-10-9
	 * @version  1.0
	 * @param roleId 角色id
	 * @return 菜单列表
	 */
	List<MenuDO> findByRoleId(String roleId);

	/**
	 * 根据上级菜单查询下级菜单列表
	 * @author mics
	 * @date 2023-10-13
	 * @version  1.0
	 * @param parentId
	 * @return
	 */
	List<MenuDO> findByParentId(String parentId);

	/**
	 * 菜单列表
	 * @author mics
	 * @date 2023-10-16
	 * @version  1.0
	 * @param name 
	 * @return
	 */
	List<MenuDO> list(String name);

}
